package com.zhuhanpeng.cloud.file.service;

import com.obs.services.model.ObjectListing;
import com.zhuhanpeng.cloud.file.entity.COSEntity;
import com.zhuhanpeng.cloud.file.entity.PtFileInfoEntity;
import com.zhuhanpeng.cloud.file.entity.SearchEntity;
import com.zhuhanpeng.cloud.file.entity.SearchFileInfoEntity;
import com.zhuhanpeng.cloud.mybatis.entity.PtFileEntity;
import com.zhuhanpeng.cloud.mybatis.entity.PtSendShareEntity;
import com.zhuhanpeng.cloud.mybatis.flexigrid.PadingRstType;
import com.zhuhanpeng.cloud.mybatis.flexigrid.PagingEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface FileService {
    /**
     * 分页查询
     *
     * @param entity
     * @param paging
     * @return
     */
    PadingRstType<PtFileInfoEntity> queryFileInfoByPage(PtFileInfoEntity entity, PagingEntity paging);

    void uploadFileInfo(MultipartFile file);

    void downloadFile(String fileName);

    SearchEntity queryAllFileInfoList(SearchEntity entity);

    void deleteFileInfo(PtFileEntity fileEntity);

    void collectionFileInfo(PtFileEntity fileEntity);

    SearchEntity queryCollectionInfo(SearchEntity entity);


    void removeCollectionInfo(PtFileEntity fileEntity);

    SearchEntity queryRecycleFileInfo(SearchEntity entity);

    void refreshFileInfo(PtFileEntity entity);

    void deleteRecycleFileInfo(PtFileEntity fileEntity);

    COSEntity getTencentCosInfo();

    void shareFilesInfo(PtSendShareEntity entity);

    SearchEntity queryShareFileInfoList(SearchEntity entity);

    void deleteShareFileInfos(PtSendShareEntity entity);

    PtFileEntity getFileInfo(PtSendShareEntity entity);
}
